package com.hailiang.study.javase.java.util;

import org.junit.Test;

import java.util.HashMap;
import java.util.Map;

/**
 * 定义：
 *      V putIfAbsent(K key, V value)
 * 说明：
 *      如果键值key不存在，则将value放入Map中，返回null（即oldValue）
 *      如果简直Key存在
 *          -- key值对应的value值为null时：则将value覆盖oldValue，将返回null
 *          -- key值对应的value值不为null时：则不作任何处理，将返回oldValue
 */
public class Map_putIfAbsent {

    @Test
    public void test_putIfAbsent_01() {
        Map<Integer, String> map = new HashMap<>();
        for (int i = 0; i < 5; i ++) {
            map.put(i, "val_" + i);
        }
        map.put(10, null);  // 放入null
        System.out.println("3 --> " + map.putIfAbsent(3, "val_66"));
        System.out.println("10 --> " + map.putIfAbsent(10, "val_66"));
        System.out.println("11 --> " + map.putIfAbsent(11, "val_66"));
        System.out.println("3 --> " + map.get(3) + ", 10--> " + map.get(10) + ", 11--> " + map.get(11));
    }
}
